%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

IMPLEMENTATION:
The algorithm is based on the paper: "零素矩阵合冲模计算的高效算法" by Dong Lu, Dingkang Wang, Fanghui Xiao and Xiaopeng Zheng.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

PROCEDURES:
1. The "Package of Quillen-Suslin" folder contains a Maple package called QuillenSuslin which is used to complete Quillen-Suslin algorithm. Beside it contains a Maple package called Involutive which is used to deal with module operations including the computation of the syzygy module  and the Groebner basis for submodules.  Refer to https://who.rocq.inria.fr/Alban.Quadrat/QuillenSuslin/index.html for more details. 

2. Firstly, you need to copy files "Involutive.hdb","Involutive.ind","Involutive.lib","QuillenSuslin.hdb","QuillenSuslin.ind","QuillenSuslin.lib" to folder "lib" in the installation directory of Maple, then restart Maple. 

3. If 2 doesn't work, use the command line "libname" in maple. Then copy the six file above to this folder.

4. The "A new algorithm for computing syzygy modules of zero prime matrices.mv" file contains the new algorithm fro computing the syzygy module of zero left prime matrix. The function "ZLP_Syzygy" computes the generator of the module of ZLP matrix. The function "isZLP" check whether a matrix is ZLP. 

5. For the purpose of comparison, we call the function "SyzyzgModule" in the Package of "Involutive" to compute the generator of the syzygy of ZLP matrices. In the file "test in Singular.txt", we call the function "syz" in Singuler to compute the generator of the syzygy of ZLP matrices.  

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

MAIN FUNCTION:  
ZLP_Syzygy(M)  --- compute the syzygy module in polynomial ring of two variables generated by the column of the matrix M; 


CALLING SEQUENCE:
ZLP_Syzygy(M) 

PARAMETERS:
M ---an n×m zero left prime matrix whose entries are polynomials;

OUTPUT: 
the syzygy module generated by the column of the matrix M;



Other FUNCTION:  
IsZLP(M,var)  --- check whether a matrix is zero left prime


CALLING SEQUENCE:
IsZLP(M,var) 

PARAMETERS:
M ---an n×m zero left prime matrix whose entries are polynomials;
var --- the variates of entries in the matrix

OUTPUT: 
true if a matrix is ZLP, otherwhile output false




